#ifndef ROUTE_H
#define ROUTE_H

#include <string>
#include <vector>
#include "place.h"

// 道路数据模型
class Road {
public:
    int id;
    double start_lat;         // 起点纬度
    double start_lng;         // 起点经度
    double end_lat;           // 终点纬度
    double end_lng;           // 终点经度
    std::string road_type;    // 道路类型
    
    Road() : id(0), start_lat(0), start_lng(0), end_lat(0), end_lng(0) {}
    
    Road(int id, double start_lat, double start_lng, double end_lat, double end_lng, const std::string& road_type)
        : id(id), start_lat(start_lat), start_lng(start_lng), end_lat(end_lat), end_lng(end_lng), road_type(road_type) {}
};

// 内部地点数据模型
class InternalPlace {
public:
    int id;
    int parent_id;            // 父地点ID
    std::string name;         // 名称
    std::string type;         // 类型（厕所、餐厅等）
    double latitude;          // 纬度
    double longitude;         // 经度
    std::string description;  // 描述
    
    InternalPlace() : id(0), parent_id(0), latitude(0), longitude(0) {}
    
    InternalPlace(int id, int parent_id, const std::string& name, const std::string& type,
                  double latitude, double longitude, const std::string& description)
        : id(id), parent_id(parent_id), name(name), type(type),
          latitude(latitude), longitude(longitude), description(description) {}
};

// 路线模型
class Route {
public:
    int id;
    std::string name;
    std::vector<Place> places;     // 路线包含的地点
    std::string description;
    int duration_minutes;          // 预计游览时间（分钟）
    double total_distance;         // 总距离（公里）
    
    Route() : id(0), duration_minutes(0), total_distance(0) {}
};

#endif // ROUTE_H